home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d882.lha / GALer / GALer_english / Source / GALerSrcE.lha / GALer.h < prev    next >
C/C++ Source or Header  |  1993-01-28  |  9KB  |  367 lines

  1.  
  2. #ifndef     EXEC_TYPES_H
  3. #include <exec/types.h>
  4. #endif
  5.  
  6. #ifndef     __STDIO_H
  7. #include <stdio.h>
  8. #endif
  9.  
  10.  
  11. #define        GAL16V8        1        /*GAL-Typ*/
  12. #define        GAL20V8        2
  13. #define        GAL16V8A    3
  14. #define        GAL20V8A    4
  15. #define        UNKNOWN        5
  16. #define        NOT_SPECIFIED    6
  17.  
  18. #define        IC1        3        /*IC-Nummern*/
  19. #define        IC2        -1        /*IC2 nur für Elektor- und*/
  20. #define        IC3        0        /*Maxon-GAL-Brenner*/
  21. #define        IC4        1
  22. #define        IC5        2
  23. #define        IC6        0
  24. #define        IC7        1
  25. #define        IC10        10
  26.  
  27. #define        ON        1        /*LED-Status*/
  28. #define        OFF        0
  29.  
  30. #define        YES        1
  31. #define        NO        0
  32.  
  33. #define        PROG        1        /*GAL-Modus*/
  34. #define        VERIFY        0
  35.  
  36. #define        LOW        0
  37. #define        HIGH        1
  38. #define        EINGANG        0
  39. #define        AUSGANG        1
  40.  
  41. #define        CONT_REQ    0        /* Requester-Typen*/
  42. #define        INFO_REQ    1
  43. #define        ERR_REQ        2
  44. #define        GALTYPE_REQ    3
  45. #define        ATYPE_REQ    4
  46. #define        ERASE_REQ    5
  47.  
  48.                         /*Dauer des STR-Impulses in*/
  49. #define        PROG_TIME1    80000L        /*Mikrosekunden für pro-*/
  50. #define        PROG_TIME2    10000L        /*grammieren*/
  51. #define        PROG_TIME3    40000L
  52. #define        PROG_TIME4    100000L
  53. #define        VERIFY_TIME    5L        /*lesen*/
  54. #define        BULK_TIME    100000L        /*Bulk-Erase*/
  55.  
  56.  
  57.                         /*Spannung*/
  58. #define        V12_00        4        /*12.00 Volt*/
  59. #define        V14_00        3        /*14.00 Volt*/
  60. #define        V14_50        2        /*14.50 Volt*/
  61. #define        V15_75        1        /*15.75 Volt*/
  62. #define        V16_50        0        /*16.50 Volt*/
  63.  
  64.  
  65.  
  66. #define        COPYGAL        1        /*für ProgJedecToGAL-Routine*/
  67. #define        PROGGAL        2
  68.  
  69.                         /*Voreinstellungen*/
  70. struct    Configuration { BYTE GALType;        /*GALType = 16V8 od. 20V8*/
  71.             BYTE AType;        /*TRUE=A; FALSE=normal*/
  72.             BYTE AutoAType;        /*autom. A-Typ-Erkennung*/
  73.             BYTE GALTypeReq;    /*TRUE=Requester für GAL-Typ*/
  74.             BYTE GenJedec;        /*Jedec-File erstellen?*/
  75.             BYTE GenFuse;        /*Fuse-File erstellen?*/
  76.             BYTE GenChip;        /*Chip-File erstellen?*/
  77.             BYTE GenPin;        /*Pin-File erstellen?*/
  78.             BYTE AutoSave;        /*automatisch sichern?*/
  79.             BYTE AutoGAL;        /*autom. GAL eistellen?*/
  80.             BYTE ProgEmptyTest;    /*Leertest vor Prog.GAL*/
  81.             BYTE ProgVerify;    /*Verify nach Prog.GAL*/
  82.             BYTE CopyEmptyTest;    /*Leertest vor Copy-GAL*/
  83.             BYTE CopyVerify;    /*Verify nach Copy-GAL*/
  84.             BYTE EraseEmptyTest;    /*Leertest nach GAL-Löschen*/
  85.             BYTE JedecSecBit;    /*Security-Bit des Jedec*/
  86.             BYTE JedecFuseChk;    /*Fuse-Checksumme des Jedec*/
  87.             BYTE JedecFileChk;    /*File-Checksumme des Jedec*/
  88.               };
  89.  
  90.  
  91.  
  92. struct    JedecStruct { BYTE GALLogic[2560];    /*max. Größe der Fuse-Mat.*/
  93.               BYTE GALXOR  [8];        /*XOR-Bits*/
  94.               BYTE GALSig  [64];    /*Signatur*/
  95.               BYTE GALAC1  [8];        /*AC1-Bits*/
  96.               BYTE GALPT   [64];    /*Produkttermfreigabe*/
  97.               BYTE GALSYN;        /*SYN-Bit*/
  98.               BYTE GALAC0;    };    /*AC0-Bit*/
  99.  
  100.  
  101.                     /*GAL16V8*/
  102. #define    LOGIC16        0        /* Positionen der Bits in der*/
  103. #define    XOR16        2048        /* Jedec-Datei*/
  104. #define SIG16        2056
  105. #define AC116        2120
  106. #define PT16        2128
  107. #define SYN16        2192
  108. #define AC016        2193
  109. #define NUMOFFUSES16    2194
  110.                     /*GAL20V8*/
  111. #define    LOGIC20        0        /* Positionen der Bits in der*/
  112. #define    XOR20        2560        /* Jedec-Datei*/
  113. #define SIG20        2568
  114. #define AC120        2632
  115. #define PT20        2640
  116. #define SYN20        2704
  117. #define AC020        2705
  118. #define NUMOFFUSES20    2706
  119.  
  120. #define LOGIC16_SIZE    2048        /*Anzahl der Bits für XOR usw.*/
  121. #define LOGIC20_SIZE    2560
  122. #define ROW_SIZE    64
  123. #define XOR_SIZE    8
  124. #define SIG_SIZE    64
  125. #define AC1_SIZE    8
  126. #define PT_SIZE        64
  127. #define SYN_SIZE    1
  128. #define AC0_SIZE    1
  129. #define ACW_SIZE    82        /*Architektur-Kontroll-Wort*/
  130.  
  131. #define    MAX_FUSE_ADR16    31        /*Adressen der GALs (für Fan-Post)*/
  132. #define    SIG_ADR16    32
  133. #define    MAX_FUSE_ADR20    39
  134. #define    SIG_ADR20    40
  135. #define ACW_ADR        60
  136. #define SECURITY_ADR    61
  137. #define ERASE_ADR    63
  138.  
  139. #define MAX_OR        8        /*max. Anzahl der OR-Verknüpfungen*/
  140.  
  141. /*GAL-Assembler*/
  142.  
  143.  
  144.                     /*Konstanten für den Assembler*/
  145. #define    ASSEMBLER    0        /*ganzes File assemblieren->Jedec*/
  146. #define OPTIMIZER    1        /*nur bis zu den Gleichungen assem-*/
  147.                     /*blieren (Optimizer)*/
  148.  
  149. struct    Pin        { BYTE p_Neg;        /*Pin negiert?*/
  150.               BYTE p_Pin; };    /*Pinnummer*/
  151.  
  152.  
  153. struct    GAL_OLMC    { BYTE Active;        /*Ausgang negiert?*/
  154.                 BYTE PinType;        /*Eingang, komb. Ausgang...*/
  155.                 BYTE TriCon;        /*Tri.-Kontrolle angegeben?*/
  156.               BYTE FeedBack; };    /*Ausgang mit Rückkopplung?*/
  157.  
  158. #define ACTIVE_LOW    0            /*Pin High-aktiv*/
  159. #define ACTIVE_HIGH    1            /*Pin Low-aktiv*/
  160.                     /*PinType: */
  161. #define NOTUSED        0            /*Pin (noch) nicht verwendet*/
  162. #define NOTCON        0            /*Pin nicht verwendet*/
  163. #define INPUT        2            /*Eingang*/
  164. #define COMOUT        3            /*kombinatorischer Ausgang*/
  165. #define TRIOUT        4            /*Tristate-Ausgang*/
  166. #define REGOUT        5            /*Register-Ausgang*/
  167. #define COM_TRI_OUT    6            /*entweder Tri. oder komb. Ausgang*/
  168.                     /*TriCon:*/
  169. #define NO_TRICON    0            /*kein Tri.-Kontrolle angegeben*/
  170. #define TRICON        1            /*Tri.-Kontrolle angegeben*/
  171. #define TRI_VCC        2            /*ständige Tristate-Freigabe*/
  172. #define TRI_GND        3            /*ständig hochohmig*/
  173. #define TRI_PRO        4            /*Tristate-Kontrolle über Produktterm*/
  174.  
  175.  
  176. #define    NC_PIN        30
  177.  
  178. #define MODE1        1        /*Betriebsmodi (SYN,AC0)*/
  179. #define MODE2        2
  180. #define MODE3        3
  181.  
  182.  
  183.                     /*Konstanten für den Optimizer*/
  184. #define    NEGATION    0x80        /*Bit 7 = 1 wenn '/' vor Pinnamen*/
  185. #define EQUASKIP    0xFE        /*wird nicht beachtet*/
  186. #define    EQUAEND        0xFF        /*Ende einer Gleichung*/
  187. #define EQUASEND    0x00        /*Ende aller Gleichungen, bis zum*/
  188.                     /*DESCRIPTION*/
  189.  
  190. #define    ENTRY_SIZE    256        /*Anzahl der Einträge pro Puffer*/
  191.  
  192. #define SIZE_OF_EQUASTRING 80
  193.                     /*Aus der Struktur Buffer wird*/
  194.                     /*eine verkettete Liste aufgebaut,*/
  195.                     /*in deren "Entries" entsprechende*/
  196.                     /*Daten abgelegt werden*/
  197. struct    Buffer    { struct Buffer *Next;
  198.           struct Buffer *Prev;
  199.           UBYTE  Entries[ENTRY_SIZE]; /*hier werden z.B. die codier-*/
  200.         };                  /*ten Gleichungen abgelegt*/
  201.                             
  202.                     /*diese Struktur wird für Parameter*/
  203.                     /*und für Ergebnisse von Funktionen*/
  204.                     /*benötigt; sie enthält alle Infor-*/
  205.                     /*mationen über den aktuellen Puffer*/
  206.                     /*(siehe Equations-Struktur*/
  207. struct    ActBuffer  { struct Buffer *ThisBuff;  /*Zeiger auf aktuellen Puffer*/
  208.              UBYTE     *Entry;       /*Zeiger in das Entries-Feld*/
  209.              UBYTE     *BuffEnd;     /*Zeiger auf Pufferende*/
  210.            };
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217. /* GALer.c */
  218. void    ExecuteMenu ();
  219. void    PAL_NTSC ();
  220. int    GetParPort ();
  221. void    FreeParPort ();
  222. int    GetTimer ();
  223. void    FreeTimer ();
  224. void    WaitForTimer ();
  225. void    OpenStuff ();
  226. void    CloseStuff ();
  227.  
  228. /* Port.asm */
  229. void    InitGALer ();
  230. void    EnableOutput ();
  231. void    DisableOutput ();
  232. void    InitParPort ();
  233. void    RestoreParPort ();
  234. void    WriteByte ();
  235. int    ReadByte ();
  236. void    SetGAL ();
  237. void    VeditOn ();
  238. void    VeditOff ();
  239. void    LED ();
  240. void    EnableVcc ();
  241. void    DisableVcc ();
  242. void    EnableVEdit ();
  243. void    DisableVEdit ();
  244. void    SetRow ();
  245. void    SDIn ();
  246. int    SDOut ();
  247. void    Clock ();
  248. void    STRImpuls ();
  249. void    EditMode ();
  250. void    ExitEditMode ();
  251. void    SetPV ();
  252. void    SetVolt ();
  253.  
  254.  
  255. /* GAL2.c */
  256. void    GALInfo ();
  257. int    ReadGALParameter ();
  258. int    GALAType ();
  259. UBYTE    GetByte ();
  260.  
  261.  
  262. /* GAL.c */
  263. void    ProgramGAL ();
  264. void    CopyGAL ();
  265. void    Leertest ();
  266. int    CheckGAL ();
  267. void    TestSecurity ();
  268. void    Compare ();
  269. void    PrintACW ();
  270. void    PrintSignature ();
  271. int    ProgJedecToGAL ();
  272. void    ReadGALToJedec ();
  273. void    SetSecurity ();
  274. void    Loeschen ();
  275. void    EraseIt ();
  276.  
  277.  
  278. long    FileSize ();
  279.  
  280. /* GALasm.c */
  281. int    AssembleInputFile ();
  282. void    SetAND ();
  283. void    IsPinName ();
  284. int    GetNextChar ();
  285. int    GetNextLine ();
  286. void    AsmError ();
  287. void    WriteChipFile ();
  288. void    WritePinFile ();
  289. void    WriteFuseFile ();
  290. void    WriteSpaces ();
  291.  
  292. /* Jedec.c */
  293. void    PutJedec ();
  294. int    FileChecksum ();
  295. int    FuseChecksum ();
  296. int    MakeJedecBuff ();
  297. void    WriteJedecFile ();
  298. int    SearchNextChar ();
  299. int    SearchNextAsterix ();
  300. int    GetJedec ();
  301. void    JedecError ();
  302.  
  303. /* Optimizer.c */
  304. int    SearchVar ();
  305. int    Optimizer ();
  306. struct    ActBuffer GetProdTermStart ();
  307. void    KillProdTerm ();
  308. int    OptimizeEqua ();
  309. int    Resolvente ();
  310. int    NumOfVar ();
  311. int    AddResolvente ();
  312. int    IsThereAProdTerm ();
  313. int    SearchVarProd ();
  314. int    WriteNewSource ();
  315. int    CopyEqua ();
  316. int    PrintEqua ();
  317. int    GetNext ();
  318. int    GetNextEqua ();
  319. void    PrintOptText ();
  320. int    ScrollRequester ();
  321. int    TranslateEqua ();
  322.  
  323. /* Pruefer.c */
  324. void    Pruefer ();
  325. void    SetPegel ();
  326. void    CheckOutput ();
  327. void    TogglePruefer ();
  328. void    DrawGAL ();
  329. void    DrawLeftPin ();
  330. void    DrawRightPin ();
  331. void    PrintPinNames ();
  332. void    ClearPinNames ();
  333.  
  334. /* Sub.c */
  335. void    Schreibverhalten ();
  336. void    JedecRequester ();
  337. void    About ();
  338. int    mystrcmp ();
  339. int    MyFileReq ();
  340. int    CompareRequester ();
  341. int    MyRequest ();
  342. int    AsmRequester ();
  343. long    FileSize ();
  344. int    ReadFile ();
  345. void    ErrorReq ();
  346. void    PrintText ();
  347. void    PrintErrorLine ();
  348. void    LoadConfig ();
  349. void    SaveConfig ();
  350. void    SetGALType ();
  351. int    AddByte ();
  352. int    AddString ();
  353. void    IncPointer ();
  354. void    DecPointer ();
  355. void    FreeBuffer ();
  356.  
  357.  
  358. /* Reasm.c */
  359. int    CheckPinNames ();
  360. int    PinNameRequester ();
  361. int    RowActive ();
  362. int    OLMCOutput ();
  363. int    MakeEquation ();
  364. int    Reasm ();
  365. void    Reassembler ();
  366. void    ReasmError ();
  367.